package com.cskaoyan.ribbon.ribbon;

import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.AbstractLoadBalancerRule;
import com.netflix.loadbalancer.Server;

import java.util.List;

/**
 * 创建日期: 2023/01/06 14:17
 *
 * @author ciggar
 */
public class MyRibbonRule extends AbstractLoadBalancerRule {


    @Override
    public void initWithNiwsConfig(IClientConfig iClientConfig) {

    }

    // 在这个方法中，我们可以根据自己的需求，去实现负载均衡的策略
    @Override
    public Server choose(Object o) {

        // 获取服务集群下面所有的服务实例
        List<Server> serverList = getLoadBalancer().getAllServers();

        // 根据需求，选择其中的一个服务实例
        Server server = serverList.get(0);


        // 获取可达的服务实例列表   DummyPing
        // List<Server> servers = getLoadBalancer().getReachableServers();



        return server;





    }
}
